home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / arch / s390 / include / asm / cmb.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  2.1 KB  |  59 lines

  1. #ifndef S390_CMB_H
  2. #define S390_CMB_H
  3. /**
  4.  * struct cmbdata - channel measurement block data for user space
  5.  * @size: size of the stored data
  6.  * @elapsed_time: time since last sampling
  7.  * @ssch_rsch_count: number of ssch and rsch
  8.  * @sample_count: number of samples
  9.  * @device_connect_time: time of device connect
  10.  * @function_pending_time: time of function pending
  11.  * @device_disconnect_time: time of device disconnect
  12.  * @control_unit_queuing_time: time of control unit queuing
  13.  * @device_active_only_time: time of device active only
  14.  * @device_busy_time: time of device busy (ext. format)
  15.  * @initial_command_response_time: initial command response time (ext. format)
  16.  *
  17.  * All values are stored as 64 bit for simplicity, especially
  18.  * in 32 bit emulation mode. All time values are normalized to
  19.  * nanoseconds.
  20.  * Currently, two formats are known, which differ by the size of
  21.  * this structure, i.e. the last two members are only set when
  22.  * the extended channel measurement facility (first shipped in
  23.  * z990 machines) is activated.
  24.  * Potentially, more fields could be added, which would result in a
  25.  * new ioctl number.
  26.  */
  27. struct cmbdata {
  28.     __u64 size;
  29.     __u64 elapsed_time;
  30.  /* basic and exended format: */
  31.     __u64 ssch_rsch_count;
  32.     __u64 sample_count;
  33.     __u64 device_connect_time;
  34.     __u64 function_pending_time;
  35.     __u64 device_disconnect_time;
  36.     __u64 control_unit_queuing_time;
  37.     __u64 device_active_only_time;
  38.  /* extended format only: */
  39.     __u64 device_busy_time;
  40.     __u64 initial_command_response_time;
  41. };
  42.  
  43. /* enable channel measurement */
  44. #define BIODASDCMFENABLE    _IO(DASD_IOCTL_LETTER, 32)
  45. /* enable channel measurement */
  46. #define BIODASDCMFDISABLE    _IO(DASD_IOCTL_LETTER, 33)
  47. /* read channel measurement data */
  48. #define BIODASDREADALLCMB    _IOWR(DASD_IOCTL_LETTER, 33, struct cmbdata)
  49.  
  50. #ifdef __KERNEL__
  51. struct ccw_device;
  52. extern int enable_cmf(struct ccw_device *cdev);
  53. extern int disable_cmf(struct ccw_device *cdev);
  54. extern u64 cmf_read(struct ccw_device *cdev, int index);
  55. extern int cmf_readall(struct ccw_device *cdev, struct cmbdata *data);
  56.  
  57. #endif /* __KERNEL__ */
  58. #endif /* S390_CMB_H */
  59.